The present disclosure relates to virtual machines (VMs) and, more specifically, to transparent VM offloading in a heterogeneous processor.
A contemporary VM is a software implementation of a machine (i.e., a computer) that executes programs on a physical machine. A VM typically emulates a physical computing environment with requests for central processing unit (CPU), memory, hard disk, network and other hardware resources being managed by a virtualization layer which translates these requests to the underlying physical hardware. VMs are created within a virtualization layer, such as a hypervisor or a virtualization platform that runs on top of a client or server operating system (OS). The virtualization layer is typically used to create many individual, isolated VMs within a single, physical machine. Multiple VMs are typically used in server consolidation, where different services that were previously run on individual machines are instead run on isolated VMs on the same physical machine.
System offloads (also referred to herein as system migrations) of VMs are performed for a variety of reasons including the management of workloads, and to provide a back-up system while hardware and/or software upgrades are being installed. System migrations are also performed to move a VM to a new processor or other hardware. There are a variety of methods for performing VM migration including halting execution of the VM to perform the migration; as well as performing a live migration which migrates a VM while it is executing.